A Web browser is a piece of software that facilitates access to websites on the World Wide Web (WWW, or Web), which is a set of informational resources hosted on the Internet. While browsers were text-based in the early stages of the Web, most modern browsers present a user with hypertext pages that integrate text, graphics, and other multimedia content. Modem browsers also allow the user to provide input to navigate from webpage to webpage to satisfy their informational needs.
Web browsers traditionally operate based on a client-server model. In the client-server model, a distributed architecture is used where tasks are divided between resource providers, called servers, and service users, called clients. As part of the operation of the Web, often a user will operate a client machine, which uses support functionality that is hosted by a server. Alternatively, both client and server functionality may be distributed over a local area network (LAN) or within a single machine.
Servers often host processing tasks to reduce the computational burden placed on a client. Servers may have greater processing or storage resources than the clients, or multiple servers may collaborate on processing tasks. However, even if a server is able to take responsibility for certain processing tasks, certain parts of the interaction between clients and servers may require client-side capability. For example, in running a scripting language such as JavaScript, commands are embedded in the Hypertext Markup Language (HTML) files that the server transmits to the client. However, once the scripting commands have been transmitted to the client environment, the Web browser executes the JavaScript commands locally within the Web browser at the client, without demanding further resources from the server.
Another type of interaction within the client-server model is the storage of persistent information by the client, also referred to as client-side storage. An example of persistent information that might be stored by a client is the type of information known as a “cookie”, also referred to as a Web cookie, a browser cookie, or an HTTP cookie.
Cookies are textual information stored on the user's computer by the Web browser. They allow Web browsers to perform tasks where locally storing information is necessary, such as authentication, storing preferences, e-commerce, session management, or any other function that storing persistent information can accomplish. Cookies may include name-value pairs, and encryption of cookies is possible if security is necessary. Cookies are transmitted from the server using HTTP (Hypertext Transfer Protocol) to the Web browser as part of header material.
Cookies may expire, or users may take action to intervene and manage cookies by deleting unwanted cookies. Cookies pose a danger, however, in that they preserve a record of information that the user may prefer to keep as private, and as such may be used as spyware. For example, websites that read cookies may glean information about user identification, preferences and activity.
Cookies are not executable, and therefore cannot take destructive action on their own. However, the fact that they expose information that some users may wish to hide presents a dilemma for users. Some websites may absolutely require the use of cookies in order to function properly. For example, an online merchant may use cookies to track a user's shopping cart, and if cookies are not operational, the e-commerce process may break down. Therefore, users may need assistance in managing access to persistent information such as cookies in Web browsers in a convenient, facilitated manner.